 //生成token的中间件
const jwt=require('jsonwebtoken')
const db=require('./db')
db.init()  //数据库初始化
// 基于Nodejs的规范 对外暴露出当前模块 供外部使用

module.exports=async (req,res,next)=>{
    // req代表了前端发送的请求
    if(req.method==='POST'&&req.path==='/login'){
        //结构req.body 来自于H5发送的ajax请求携带的参数
          const {username,password}=req.body
           console.log(username,password);
    //    对账号密码是否匹配做校验
      const isPass=await db.checkUser(username,password)
      if(isPass){
           //校验通过的话 生成token  返回给前端  token加密
           //sign 根据用户名生成一个token   第一个参数是用户名 第二个是加密
           let token=jwt.sign({username},'user')
           console.log(token);
           return res.status(200).json({
            success:true,
            data:{
                token
            }
           })
      }
    }else{
        // 表明是登录接口
        // res:response  返回 网络请求给前端的内容
        return res.status(200).json({
            success:false,
            data:{}
        })
    }
    // 在header中获取token
    const token=req.headers['token']
    try{
        // 如果有token  就把token解密
        const decoded=jwt.verify(token,'2302B')

    }catch(e){
        return res.status(200).json({
            success:false,
            msg:'token已失效'
        })
    }
    next()
}
